/**
 * Project Untitled
 */


#ifndef _ANIMATIONCONPONENT_H
#define _ANIMATIONCONPONENT_H
#include <vector>
#include <functional>
#include <chrono>
#include "GameObjects.h"
class AnimationConponent {
public: 
    //static std::vector<std::function<void()>> AnimationTrans;
    
/**
 * @param game_object
 * @param unsigned int animation_index
 */
static void registerAnimation(GameObjects& game_object, uint32_t animation_index);
    
/**
 * @param game_object
 * @param pos_x
 * @param pos_y
 * @param pos_z
 * @param duration
 */
static void regiesterTransTo(GameObjects& game_object, double pos_x, double pos_y, double pos_z, std::chrono::seconds duration);
    
/**
 * 第2，3，4个参数表示围绕的中心轴。旋转方向为顺时针
 * @param game_object
 * @param angel_x
 * @param angle_y
 * @param angle_z
 * @param duration
 */
static void regiesterRotate(GameObjects& game_object, double angel_x, double angle_y, double angle_z, std::chrono::seconds duration);
    
static void update();
};

#endif //_ANIMATIONCONPONENT_H